//栈
#include <myhead.h>
#define MAX 100
typedef struct 
{
	int data[MAX];
	int top;
}liink,*Plink;
//创建栈
Plink create()
{
	Plink p=malloc(sizeof(liink));
	if(p==NULL)
	{
		printf("创建失败\n");
		return NULL;
	}
	p->top=-1;
	printf("创建成功\n");
	return p;
}
//入栈
int push(Plink p,int e)
{
	if(p->top>=MAX-1)
	{
		printf("栈满，入栈失败\n");
		return -1;
	}
	p->top++;
	p->data[p->top]=e;
	return 0;
}
//出栈
int pop(Plink p)
{
	if(p->top<0)
	{
		printf("栈空，出栈失败\n");
		return -1;
	}
	printf("data[%02d]:%5d\n",p->top,p->data[p->top]);
	p->top--;
	return 0;
}
/************************main****************************/
int main()
{
	//创建栈
	Plink Z=create();
	//入栈
	for(int i=0;i<20;i++)
		push(Z,i+1);
	//出栈
	while(Z->top>-1)
		pop(Z);
	return 0;
}
